package com.study.spark.scala.chapter06

import java.lang.reflect.Field

object Scala11_Object_String {
  def main(args: Array[String]): Unit = {
    // TODO 面向对象 - 扩展 - 不可变字符串
    // 字符串不可变：底层的char[]的内存地址不可变
    // 字符串的内容是可以变的：反射
    val s = " a b "

    val stringClass: Class[String] = classOf[String]
    val field: Field = stringClass.getDeclaredField("value")
    field.setAccessible(true)
    val obj = field.get(s)
    val chars: Array[Char] = obj.asInstanceOf[Array[Char]]
    chars(2) = 'D'
    println(s)// aDb
  }
}


